package biz.datalk.industrialland.admin.modules.system.operator;


import biz.datalk.industrialland.mbg.pojo.po.SysDict;
import biz.datalk.industrialland.mbg.pojo.po.SysDictItem;

import java.util.List;
import java.util.Map;

/**
 * 系统数据字典与字典条目操作器
 * @author ZhouYi
 * @date 2020/6/11 17:8
 * @description description
 * @note note
 */
public interface SysDictAndItemOperator {

	// ===== ===== ===== ===== [常量] ===== ===== ===== ===== //



	// ===== ===== ===== ===== [静态变量] ===== ===== ===== ===== //



	// ===== ===== ===== ===== [操作方法] ===== ===== ===== ===== //

	/**
	 * 通过字典ID或字典码来获取数据字典定义信息
	 * @param dictId 字典ID（优先）
	 * @param dictCode 字典码
	 * @return {@code SysDict} 查询到的字典定义信息
	 * @author ZhouYi
	 * @date 2020/6/11 18:35
	 * @description description
	 * @note note
	 */
	SysDict getSysDict(String dictId, String dictCode);

	/**
	 * 通过字典ID或字典码来获取所有对应的数据字典条目列表
	 * @param dictId 字典ID（优先）
	 * @param dictCode 字典码
	 * @return {@code List<SysDictItem>} 查询到的字典条目列表
	 * @author ZhouYi
	 * @date 2020/6/11 18:35
	 * @description description
	 * @note note
	 */
	List<SysDictItem> getSysDictItemList(String dictId, String dictCode);

	/**
	 * 通过字典ID或字典码来获取所有对应的数据字典条目Map，其中Key为条目值，Value为条目文本
	 * @param dictId 字典ID（优先）
	 * @param dictCode 字典码
	 * @return {@code Map<String,String>} 查询到的字典条目Map
	 * @author ZhouYi
	 * @date 2020/6/11 18:37
	 * @description description
	 * @note note
	 */
	Map<String, String> getSysDictItemMap(String dictId, String dictCode);

	/**
	 * 从字典条目列表中，抽取对应的数据字典条目Map，其中Key为条目值，Value为条目文本
	 * @param dictItemList 字典条目列表
	 * @return {@code Map<String,String>} 字典条目Map
	 * @author ZhouYi
	 * @date 2020/6/11 18:37
	 * @description description
	 * @note note
	 */
	Map<String, String> extractSysDictItemMap(List<SysDictItem> dictItemList);

}
